package com.own.component.util.excel.util.write.method;

import com.own.component.util.excel.util.write.method.base.BaseMetaData;
import com.own.component.util.excel.util.write.record.ExcelRecord;
import lombok.NonNull;

/**
 * BaseHeightMethod
 *
 * @author chenxueli
 * @date 2022-06-15 03:14:15
 */
public interface BaseHeightMethod extends BaseMetaData {

    /**
     * 设置高度
     *
     * @param height 高度值
     * @return 表格对象
     */
    default ExcelRecord setHeight(@NonNull Number height) {
        var sheet = sheet();
        return setHeight(sheet.getY(), height);
    }

    /**
     * 设置高度
     *
     * @param row    行数
     * @param height 高度值
     * @return 表格对象
     */
    default ExcelRecord setHeight(int row, @NonNull Number height) {
        var sheet = sheet();
        sheet.getHeightMap().put(row - 1, (short) (height.shortValue() * 20));
        return excel();
    }

    /**
     * 设置默认的高度
     *
     * @param height 高度值
     * @return 表格对象
     */
    default ExcelRecord setDefaultHeight(@NonNull Number height) {
        var sheet = sheet();
        sheet.setDefaultHeight((short) (height.shortValue() * 20));
        return excel();
    }

    /**
     * 清除默认的高度
     *
     * @return 表格对象
     */
    default ExcelRecord clearDefaultHeight() {
        var sheet = sheet();
        sheet.setDefaultHeight(null);
        return excel();
    }

}
